RTC (Real-time Clock) হলো একটি কম্পিউটার বা মাইক্রোকন্ট্রোলারের জন্য সময় এবং তারিখের সঠিক পরিমাপ করার জন্য ব্যবহৃত ডিভাইস। RTC ডিভাইসগুলো সাধারণত একটি ব্যাটারি বা ক্যাপাসিটরের মাধ্যমে পাওয়ার সাপ্লাই পায়, তাই এটি পাওয়ার অফ থাকলেও সঠিক সময় বজায় রাখে।
Arduino-তে জনপ্রিয় RTC মডিউলগুলোর মধ্যে অন্যতম হলো DS1307 এবং DS3231। DS3231 আরো নির্ভুল এবং পাওয়ার ব্যবস্থাপনায় উন্নত।
DS3231 RTC মডিউল ব্যবহার করে সময় পড়ার জন্য একটি উদাহরণ কোড নিচে দেওয়া হলো:
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
Wire.begin();
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
// RTC সেটিংস যদি না থাকে
if (rtc.lostPower()) {
Serial.println("RTC lost power, setting the time!");
// RTC এর জন্য সময় সেট করা
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
DateTime now = rtc.now(); // বর্তমান সময় পড়া
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
delay(1000); // 1 সেকেন্ড অপেক্ষা
}
RTC ব্যবহার করে কিছু Low Power Projects এর উদাহরণ:
Arduino একটি LED এর জন্য একটি নির্দিষ্ট সময় নির্ধারণ করে। যখন RTC এর সময় পৌঁছায়, LED অন হয় এবং কিছু সময় পরে বন্ধ হয়।
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
Wire.begin();
rtc.begin();
}
void loop() {
DateTime now = rtc.now();
if (now.hour() == 8 && now.minute() == 0) { // সকাল 8:00 এ LED অন
digitalWrite(LED_BUILTIN, HIGH);
}
else if (now.hour() == 8 && now.minute() == 5) { // 5 মিনিট পর LED অফ
digitalWrite(LED_BUILTIN, LOW);
}
delay(60000); // 1 মিনিট অপেক্ষা
}
Arduinoকে sleep mode এ রাখার মাধ্যমে পাওয়ার সঞ্চয় করা যায়। RTC এর সাহায্যে নির্দিষ্ট সময় পর Arduino আবার সচল হয়।
#include <Wire.h>
#include <RTClib.h>
#include <LowPower.h>
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
Wire.begin();
rtc.begin();
}
void loop() {
DateTime now = rtc.now();
Serial.print("Current Time: ");
Serial.print(now.hour());
Serial.print(":");
Serial.print(now.minute());
Serial.print(":");
Serial.println(now.second());
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); // 8 সেকেন্ডের জন্য sleep mode এ যাওয়া
}
RTC মডিউল ব্যবহার করে Low Power Projects তৈরি করা একটি কার্যকর পদ্ধতি, যা আপনাকে সময়ের উপর ভিত্তি করে বিভিন্ন ডিভাইস নিয়ন্ত্রণ করতে এবং শক্তি সঞ্চয় করতে সাহায্য করে।
common.read_more